package com.hspedu.innerclass;

public class InnerClassExercise {
    public static void main(String[] args) {
        CellPhone cellPhone = new CellPhone();

        //1.这里把Bell 接口的匿名内部类传给了AlarmClock方法
        //2.并重写了ring方法，通过动态绑定机制，调用的是匿名内部类中的ring方法
        cellPhone.AlarmClock(new Bell() {
            @Override
            public void ring() {
                System.out.println("懒猪该起床了..");
            }
        });

        cellPhone.AlarmClock(new Bell() {
            @Override
            public void ring() {
                System.out.println("小伙伴该上课了..");
            }
        });
    }
}

interface Bell {
    void ring();
}

class CellPhone {
    public void AlarmClock(Bell bell) {
        System.out.println(bell.getClass());
        bell.ring();//动态绑定机制
    }
}